package com.junchenrobot.mes.enums;

import lombok.Getter;

import java.util.Objects;

/**
 * 执行状态枚举
 *
 * @author SeaWave
 * @date 2023/01/05
 */
@Getter
public enum PoolStateEnum {

    /**
     * 空闲
     */
    IDLE(0, "空闲"),
    /**
     * 上一次轮询无可接取料任务
     */
    NO_PICKUP_TASK(1, "无取料任务"),
    /**
     * 有取料任务进行中
     */
    PICKING_TASK(2, "有取料任务进行中"),
    /**
     * 取料失败/删除
     */
    FEED_FAILURE(3, "取料失败"),
    /**
     * 取料完成
     */
    COMPLETION_OD_TAKE_UP(4, "取料完成"),

    /**
     * 有放料任务进行中
     */
    FEEDING_FAILURE(5,"有放料任务进行中"),

    /**
     * 放料失败/删除
     */
    COMPLETION_OF_TAKE_UP(6,"放料失败"),

    /**
     * 放料完成
     */
    DISCHARGE_COMPLETED(7,"放料完成"),
    /**
     * 禁用杆子
     */
    DISABLE_POOL(9,"禁用杆子");

    final Integer state;

    final String describe;

    PoolStateEnum(Integer state, String describe) {
        this.state = state;
        this.describe = describe;
    }

    /**
     * 获取状态描述
     *
     * @param state 状态
     * @return {@link String}
     */
    public static String getDescribeByState(Integer state) {
        PoolStateEnum[] values = values();
        for (PoolStateEnum value : values) {
            if (Objects.equals(value.state, state)) {
                return value.describe;
            }
        }
        return "";
    }
}
